package com.cetc.sdp.kmga.cs.util;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @description:
 * @author： DengQiang
 * @date: 2018/3/9 10:08
 */
public interface StreamJobConf {

    /**
     * 获得日至字段映射
     * @return
     */
    Map<Integer, HTableFiled> getLogFields();

    /**
     * 获得Hbase表名
     * @return
     */
    String getHTableName();

    /**
     * 获得日志类型
     * @return
     */
    Set<String> getLogType();

    /**
     * 是否保存错误格式日志
     * @return true - 保存错误格式日志
     *          false - 不保存错误格式日志
     */
    boolean saveErrorLog();

    /**
     * 是否根据设备id过滤日志
     * @return true - 过滤
     *          false - 不过滤
     */
    boolean filterDev();

    /**
     * 获得订阅的主题
     * @return
     */
    List<String> getSubscribeTopics();

    /**
     * 获得kafka消费者配置
     * @return
     */
    Map<String, Object> getKafkaConsumerConf();

    /**
     * 获得hbase Client配置
     * @return
     */
    Map<String, Object> getHBaseJobConf();


    /**
     * 获得RabbitMq 配置
     * @return
     */
    Map<String, String> getRabbitMqConf();

    /**
     * 获得流的配置
     * @return
     */
    Map<String, String> getStreamConf();

    /**
     * 自动从新广播
     * @return
     */
    boolean autoReBroadcast();

    /**
     * 自动广播间隔
     * @return
     */
    int getReBroadcastInterval();

    /**
     * 获得告警等级
     * @return
     */
    int getAlertLevel();
}
